|
In computing, the kernel is a computer program that manages input/output requests from software, and translates them into data processing instructions for the central processing unit and other electronic components of a computer. The kernel is a fundamental part of a modern computer's operating system.〔Wulf 74 pp.337–345〕 The critical code of the kernel is usually loaded into a ''protected area'' of memory, which prevents it from being overwritten by other, less frequently used parts of the operating system or by applications. The kernel performs its tasks, such as executing processes and handling interrupts, in ''kernel space'', whereas everything a user normally does, such as writing text in a text editor or running programs in a GUI (graphical user interface), is done in ''user space''. This separation prevents user data and kernel data from interfering with each other and thereby diminishing performance or causing the system to become unstable (and possibly crashing). When a ''process'' makes requests of the kernel, the request is called a system call. Various kernel designs differ in how they manage system calls and resources. For example, a monolithic kernel executes all the operating system instructions in the same address space in order to improve the performance of the system. A microkernel runs most of the operating system's background processes in user space,〔cf. Daemon (computing)〕 to make the operating system more modular and, therefore, easier to maintain.〔Roch 2004〕 The kernel's interface is a low-level abstraction layer. ==Functions of the kernel== The kernel's primary function is to mediate access to the computer's resources, including:〔 ;The central processing unit :This central component of a computer system is responsible for ''running'' or ''executing'' programs. The kernel takes responsibility for deciding at any time which of the many running programs should be allocated to the processor or processors (each of which can usually run only one program at a time). ;Random-access memory :Random-access memory is used to store both program instructions and data. Typically, both need to be present in memory in order for a program to execute. Often multiple programs will want access to memory, frequently demanding more memory than the computer has available. The kernel is responsible for deciding which memory each process can use, and determining what to do when not enough memory is available. ;Input/output (I/O) devices :I/O devices include such peripherals as keyboards, mice, disk drives, printers, network adapters, and display devices. The kernel allocates requests from applications to perform I/O to an appropriate device and provides convenient methods for using the device (typically abstracted to the point where the application does not need to know implementation details of the device). Key aspects necessary in resource management are the definition of an execution domain (address space) and the protection mechanism used to mediate the accesses to the resources within a domain.〔 Kernels also usually provide methods for synchronization and communication between processes called inter-process communication (IPC). A kernel may implement these features itself, or rely on some of the processes it runs to provide the facilities to other processes, although in this case it must provide some means of IPC to allow processes to access the facilities provided by each other. Finally, a kernel must provide running programs with a method to make requests to access these facilities. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Kernel (operating system)」の詳細全文を読む スポンサード リンク
|